The present invention relates to error-correcting coding, and more particularly, to an error-correcting apparatus including multiple error-correcting modules functioning in parallel and a related method.
Various types of noise, distortion, and interference are commonly seen factors that deteriorate signal communication quality and cause the output of a communication channel to be different from its input. Error-correcting coding is a technique that can be adopted in digital communication systems to help transceivers resist the above-mentioned factors, reduce the probability of errors, and enhance the reliability of the outputted data.
Concatenated coding is a kind of error-correcting coding technique that implements multiple levels of coding. Generally speaking, inner and outer codes are commonly applied to provide two levels of coding. For example, convolutional codes or Trellis-Coded-Modulation (TCM) codes could be used as the inner codes, which help to overcome scattered random errors. Reed-Solomon (RS) codes or BCH codes could be used as the outer codes, which help to overcome burst errors.
Please refer to FIG. 1, which shows a block diagram of a receiver for decoding concatenated codes. The receiver 100 shown in FIG. 1 comprises a demodulator 110, an inner decoder 120, a deinterleaver 130, and an outer decoder 140. The demodulator 110 may comprise analog-to-digital converters for converting analog signals into digital signals, a mixer for transferring frequency from a radio frequency (RF) into an intermediate frequency (IF) or baseband, filters for anti-aliasing, a synchronization means for timing or frequency recovery, and an equalizer for compensating fading or impairment channel effects. After some or all of the above-mentioned operations are performed, the demodulator 110 then generates a demodulated signal.
Depending on which kind of inner code is utilized, the inner decoder 120 could be implemented by a convolutional decoder or a TCM decoder, which inner decodes the demodulated signal to generate an inner code decoded signal. Then, the deinterleaver 130 deinterleaves the inner code decoded signal to generate a deinterleaved signal. The deinterleaver 130 plays an important role in scattering some kinds of burst noise in order to share the error-correction burden.
Depending on which kind of outer code is utilized, the outer decoder 140 could be implemented by an RS decoder or a BCH decoder. For example, when RS codes are utilized as the outer codes, an RS error decoder can be used as the outer decoder 140. The RS error decoder 140 can correct a maximum of t errors for (n, k, 2t) RS codes. In other words, the RS error decoder 140 has an error correction capability of t errors. However, in some communication systems, especially in terrestrial broadcasting systems, complex multi-path channels would induce severe fading or interference that the equalizer of the demodulator 110 cannot compensate entirely. In such circumstances, burst noise may causes errors of the inner decoder 120 to propagate to the outer decoder 140 and even the deinterleaver 130 cannot scatter them efficiently. The outer decoder 140 with only t-error correction capability may not be sufficient.
If the demodulator 110 is able to detect burst noise or the inner decoder 120 has a mechanism to mark unreliable symbols as erasure indicators, the outer decoder 140 can be upgraded to an RS error-erasure decoder. Different from the above-mentioned RS error decoder, an RS error-erasure decoder can correct x errors and y erasures for (n, k, 2t) RS codes, only if 2x+y≦2t. That is, if an RS error-erasure decoder implements the outer decoder 140, a correction capability of t errors or 2t erasures can be achieved. In other words, the RS error-erasure decoder 140 has the opportunity to correct codewords with an actual error number that is larger than t if it is informed with some error locations marked as erasures.
However, for receiver-ends, sometimes it is not easy to mark erasure locations exactly and efficiently. Besides, the inner decoder 120, which can be implemented by a TCM decoder or a Viterbi decoder, might have a memory effect that causes error propagation to occur. For example, a few distorted symbols occurring at the output end of the demodulator 110 may be corrected by Viterbi algorithm at the moment, but may cause error propagation for decoding some clear symbols later. For a transceiver that has blind data paths, it is difficult to identify whether a data-stream at the output end of the inner decoder 120 is corrected or just error propagated. In this situation, the uncertainty of an exact erasure marking procedure increases in severe burst noise and in low signal-to-noise ratio (SNR) situations. Then, an erroneous location marking for erasure will deteriorate the error correction capability of error-erasure decoder.